什麼是KeywordSearch 1.0 爬蟲關鍵字報表工具?
是作者近期兩周實作出來的小專案,把不同關鍵字搜尋工具的api及部分爬蟲寫在nodejs App當中,讓使用者可以一鍵拿到搜尋趨勢和相似詞組推薦。此專案尚有很大擴充空間,未來在作者自己的部落格若有進一步更新,會回來附在此處:________
為什麼要做KeywordSearch 1.0?
精闢有效的前導市調可以避免不符市場需求的產品出現,定期觀測關鍵字趨勢,是網路行銷或市場分析人員的日常;但網路資訊四散各地,市調人除了大量閱讀、蒐集、篩選判斷外,還要把資料整理過後呈現給團隊,這個過程非常需要耐心、想像力、判斷力、大把時間,能夠獨立做出完整市調非常不容易;因此作者和朋友想幫市調人員節省文書、搜尋時間,讓他們能專注在判斷、分析上。
現在進度到哪了?為什麼文章是有關nodejs?
這個工具已經開發完成,現在在測試修改中,這30天文章是想把自己的開發過程完整記錄下來。第一周的進度是初步架好NodeJS App的基底,以及在jupyter上測試爬蟲script。
如題,今天來實作req.query的部分。
index.js
,首先記得要把我們在about.js
已經設定好的Express和router方法用過來:// index.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index', {
title: 'MyAppName'
});
});
module.exports = router;
req.query
(一個Express的API,用來取得網址參數的方法)request
套件:// index.js
var express = require('express');
var router = express.Router();
+ var request = require('request');
router.get('/', function(req, res, next) {
res.render('index', {
title: 'MyAppName'
});
});
module.exports = router;
// index.js
var express = require('express');
var router = express.Router();
var request = require('request');
router.get('/', function(req, res, next) {
+ console.log(req.query.keywords);
res.render('index', {
title: 'MyAppName'
});
});
module.exports = router;
先運行node www
發布後,前往localhost:3000?keywords=testing
再回到terminal看,如果有出現"testing"就表示成功了。其實今天的好像有點太簡單XD
// index.js
var express = require('express');
var router = express.Router();
var request = require('request');
router.get('/', function(req, res, next) {
+ var keywords = req.query.keywords; // 先存到keywords這個變數
res.render('index', {
title: 'MyAppName',
+ keywords: keywords // 再render到模板中
});
});
module.exports = router;
記得要到index.ejs
去微改我們的模板:
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
+ <p>Your keyword is <%= keywords %></p>
</body>
</html>
完成以後重新運行node www
發布,然後再次前往localhost:3000?keywords=testing
如果你有看到"Your keyword is testing",就表示OK啦
如果使用者輸入的值中間含有空格,可使用decodeURIComponent
來還原,也方便後續繪成圖表時抓到正確的數據。
// index.js
var express = require('express');
var router = express.Router();
var request = require('request');
router.get('/', function(req, res, next) {
+ var keywords = decodeURIComponent(req.query.keywords);
res.render('index', {
title: 'MyAppName',
+ keywords: keywords
});
});
module.exports = router;
今天的小練習就到這邊,明天來介紹更多ejs模板的應用,像是如何載入json資料等